package com.qwt.part_time_api.controller;

import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.qwt.part_time_api.error.BusinessException;
import com.qwt.part_time_api.service.UserService;
import com.qwt.part_time_api.vo.LoginVo;
import com.qwt.part_time_api.vo.Result;
import com.qwt.part_time_api.vo.UserInformationVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @Author 君子慎独
 * @create 2021/12/24 0024 18:09
 */
@RestController
@RequestMapping("/user")
@Api(tags = {"用户"})
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 登录成功后调用这个接口 返回登录者的一些基本信息
     *
     * @param token token
     * @return 基本信息
     */
    @GetMapping("/currentUser")
    @ApiOperation(value = "登陆成功后的一些信息，最主要的是id", notes = "登录成功后调用这个接口 返回登录者的一些基本信息,得到的id设置成全局的，因为有几个接口要用到")
    @ApiOperationSupport(author = "Tzeao")
    @ApiResponses(@ApiResponse(code = 200, message = "成功", response = LoginVo.class))
    public Result currentUser(@RequestHeader("Authorization") String token) throws BusinessException {
        if (token == null) {
            return null;
        } else {
            return userService.findUserByToken(token);
        }
    }

    /**
     * 通过用户登录的ID 查询个人卡片的基本信息
     *
     * @param id 用户ID
     * @return 个人卡片的基本信息
     */
    @GetMapping("/userInformation/{id}")
    @ApiOperation(value = "个人卡片", notes = "通过用户登录的ID 查询个人卡片的基本信息")
    @ApiOperationSupport(author = "Tzeao")
    @ApiResponses(@ApiResponse(code = 200, message = "成功", response = UserInformationVo.class))
    private Result userInformation(@PathVariable("id") Long id) {
        return userService.findUserInfoById(id);
    }
}
